/**
* Copyright (C) 2013-2015
*
* @file   S_3_Function_doGet.c
*
* @remark
*
*/

#include "S_3_Function_doGet.h"
#include "iid.h"

#include "gwin_global_config.h"


/**
 * 格式: property_value_new_ulong(整数)　
 * 取值: 最小值: 0, 最大值: 50, 步长: 1
 */
static void P_3_2_StrokeSetting_doGet(property_operation_t *o)
{
    uint32_t value = gwin_get_stroke_min();
    o->value = property_value_new_ulong(value); // TODO: 这里需要读到属性真正的值
}

/**
 * 格式: property_value_new_ulong(整数)　
 * 取值: 最小值: 51, 最大值: 100, 步长: 1
 */
static void P_3_3_StrokeSettingMax_doGet(property_operation_t *o)
{
    uint32_t value = gwin_get_stroke_max();
    o->value = property_value_new_ulong(value); // TODO: 这里需要读到属性真正的值
}

/**
 * 格式: property_value_new_ulong(整数)　
 * 取值: 0(On-off-stop), 1(On-stop-off-stop), 2(On-off-stop-Loop)
 */
static void P_3_4_NodeModel_doGet(property_operation_t *o)
{
    uint32_t value = gwin_get_node_mode();
    o->value = property_value_new_ulong(value); // TODO: 这里需要读到属性真正的值
}

/**
 * 格式: property_value_new_ulong(整数)　
 * 取值: 最小值: 0, 最大值: 4294967295, 步长: 1
 */
static void P_3_6_Configuration_doGet(property_operation_t *o)
{
    uint32_t value = gwin_get_product_cfg();
    o->value = property_value_new_ulong(value); // TODO: 这里需要读到属性真正的值
}

void S_3_Function_doGet(property_operation_t *o)
{
    switch (o->piid)
    {
        case IID_3_2_StrokeSetting:
            P_3_2_StrokeSetting_doGet(o);
            break;

        case IID_3_3_StrokeSettingMax:
            P_3_3_StrokeSettingMax_doGet(o);
            break;

        case IID_3_4_NodeModel:
            P_3_4_NodeModel_doGet(o);
            break;

        case IID_3_6_Configuration:
            P_3_6_Configuration_doGet(o);
            break;

        default:
            o->code = OPERATION_ERROR_CANNOT_READ;
            break;
    }
}
